A host computer may have multiple network cards to connect the system to a network. In current systems, the host may include a virtual network interface driver capable of teaming. A teaming program executes to interface between the host operating system and the network cards. For hosts including multiple adapters, the device driver would select one of the network cards to transmit a packet. The device driver executing in the host may execute a load balancing algorithm to select a particular network card to transmit the packet.
In certain systems, the virtual network interface may maintain a hash table having entries associated with different adapters. The virtual network interface applies a hash function to the connection information, such as the destination and source addresses and ports, in each outbound packet to produce a hash value that is associated with one entry in the hash table. The hash table entry is associated with an adapter. This technique ensures that packets for one connection always use the same adapter because the connection information provides the same hash value that maps to one hash table entry corresponding to an adapter to which the packet is forwarded for transmission. For instance, if the hash table has 256 entries, then these 256 entries can map to any of the available adapters. Multiple connections may hash to the same hash value and, thus, the same adapter.